if select(2, UnitClass("player")) ~= "ROGUE" then return end
local GetSpellInfo = GetSpellInfo
local UnitDebuff = UnitDebuff
local UnitCreatureType = UnitCreatureType
local math_min = math.min
local math_floor = math.floor
local UnitHealth = UnitHealth
local UnitHealthMax = UnitHealthMax
local UnitDamage = UnitDamage
local string_find = string.find
local string_lower = string.lower
local UnitLevel = UnitLevel
local IsEquippedItemType = IsEquippedItemType
local ipairs = ipairs
local select = select

function DrDamage:PlayerData()
	--Health Updates
	self.TargetHealth = { [1] = 0.35, [2] = "player" }
	--Special aura handling
	local TargetIsPoisoned = false
	local Mutilate = GetSpellInfo(1329)
	local poison = GetSpellInfo(38615)
	self.Calculation["TargetAura"] = function()
		local temp = TargetIsPoisoned
		TargetIsPoisoned = false
		
		for i=1,40 do
			local name, _, _, _, debuffType = UnitDebuff("target",i)
			if name then
				if debuffType == poison then
					TargetIsPoisoned = true
					break
				end
			else break end
		end
		if temp ~= TargetIsPoisoned then
			return true, Mutilate
		end
	end
--General	
	local instant = { [GetSpellInfo(8679)] = 13, [GetSpellInfo(8686)] = 21, [GetSpellInfo(8688)] = 30, [GetSpellInfo(11338)] = 45, [GetSpellInfo(11339)] = 62, [GetSpellInfo(11340)] = 76, [GetSpellInfo(26891)] = 161, [GetSpellInfo(57964)] = 245, [GetSpellInfo(57965)] = 300, }
	local wound = { [GetSpellInfo(13219)] = 17, [GetSpellInfo(13225)] = 25, [GetSpellInfo(13226)] = 38, [GetSpellInfo(13227)] = 53, [GetSpellInfo(27188)] = 112, [GetSpellInfo(57977)] = 188, [GetSpellInfo(57978)] = 231, }	
	local anesthetic = { [GetSpellInfo(26785)] = (134+172)/2, [GetSpellInfo(57982)] = (218+280)/2, }
	local deadly = { [GetSpellInfo(2823)] = 24, [GetSpellInfo(2824)] = 36, [GetSpellInfo(11355)] = 56, [GetSpellInfo(11356)] = 76, [GetSpellInfo(25351)] = 96, [GetSpellInfo(26967)] = 160, [GetSpellInfo(27186)] = 204, [GetSpellInfo(57972)] = 244, [GetSpellInfo(57973)] = 296,  }
	self.Calculation["ROGUE"] = function( calculation, ActiveAuras, BuffTalentRanks, action, baseAction )
		if BuffTalentRanks["Prey on the Weak"] then
			if UnitHealth("target") ~= 0 then
				if((UnitHealth("player") / UnitHealthMax("player")) > (UnitHealth("target")) / UnitHealthMax("target")) then
					calculation.critM = calculation.critM * (1 + 2 * BuffTalentRanks["Prey on the Weak"])
				end
			end
		end
		if BuffTalentRanks["Remorseless Attacks"] and ActiveAuras["Remorseless"] then
			calculation.critPerc = calculation.critPerc + BuffTalentRanks["Remorseless Attacks"]
		end
		if BuffTalentRanks["Improved Kidney Shot"] and ActiveAuras["Kidney Shot"] then
			calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Improved Kidney Shot"])
		end
		if BuffTalentRanks["Find Weakness"] and ActiveAuras["Find Weakness"] then
			calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Find Weakness"])
		end
		if BuffTalentRanks["Master of Subtlety"] and ActiveAuras["Master of Subtlety"] then
			calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Master of Subtlety"])
		end
		if BuffTalentRanks["Dirty Deeds"] then
			if(UnitHealth("target") ~= 0) then
				if (UnitHealth("target") / UnitHealthMax("target")) < 0.35 then
					calculation.dmgM = calculation.dmgM * (1 + BuffTalentRanks["Dirty Deeds"])
				end
			end
		end
		if ActiveAuras["Shadowstep"] then
			calculation.dmgM = calculation.dmgM * 1.2
		end
		--Glyph of Hemorrhage
		if ActiveAuras["Hemorrhage"] and self:HasGlyph(56807) then
			calculation.dmgBonus = calculation.dmgBonus * 1.4
		end
		local buff = self:GetWeaponBuff()
		local buffO = self:GetWeaponBuff(true)
		if buff or buffO then
			calculation.E_dmgM = select(7,UnitDamage("player")) * (1 + (BuffTalentRanks["Vile Poisons"] or 0))
			calculation.E_canCrit = true
			--TODO: Crit buffs?
			calculation.E_critPerc = GetSpellCritChance(4)
			calculation.E_critM = 0.5 + self.Damage_critMBonus * 1.5		
		end
		if not baseAction.OffhandAttack and not baseAction.Ranged and buff then
			if instant[buff] then
				local spd = self:GetWeaponSpeed()
				calculation.extra = instant[buff]
				calculation.extraDamage = 0.1
				calculation.extraChance = 0.2/1.4 * spd * (1 + 0.1 * (BuffTalentRanks["Improved Poisons"] or 0)) * (self:GetSpellHit()/100)
				calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
			elseif wound[buff] then
				local spd = self:GetWeaponSpeed()
				calculation.extra = wound[buff]
				calculation.extraDamage = 0.04
				calculation.extraChance = 0.5/1.4 * spd * (self:GetSpellHit()/100)
				calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
			elseif anesthetic[buff] then
				calculation.extra = anesthetic[buff]
				calculation.extraChance = 0.5 * (self:GetSpellHit()/100)
				calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
				if not calculation.extraDamage then
					calculation.extraDamage = 0
				end				
			elseif baseAction.AutoAttack and deadly[buff] then
				calculation.extra_DPS = deadly[buff]
				calculation.extraDamage_DPS = 0.12
				calculation.extraDuration_DPS = 12
				calculation.extraStacks_DPS = 5
				calculation.extraName_DPS = "5x " .. buff
			end
		end
		if (baseAction.AutoAttack or baseAction.DualAttack or baseAction.OffhandAttack) and buffO then
			if instant[buffO] then
				local _, spd = self:GetWeaponSpeed()
				calculation.extra_O = instant[buffO]
				calculation.extraDamage_O = 0.1
				calculation.extraChance_O = 0.2/1.4 * spd * (1 + 0.1 * (BuffTalentRanks["Improved Poisons"] or 0)) * (self:GetSpellHit()/100)
				if not calculation.extraDamage then
					calculation.extraDamage = 0
				end
				if not calculation.extraName or not string_find(calculation.extraName, poison ) then
					calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
				end
			elseif wound[buffO] then
				local _, spd = self:GetWeaponSpeed()
				calculation.extra_O = wound[buffO]
				calculation.extraDamage_O = 0.04
				calculation.extraChance_O = 0.5/1.4 * spd * (self:GetSpellHit()/100)
				if not calculation.extraDamage then
					calculation.extraDamage = 0
				end				
				if not calculation.extraName or not string_find(calculation.extraName, poison ) then
					calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
				end
			elseif anesthetic[buffO] then
				calculation.extra_O = anesthetic[buffO]
				calculation.extraChance_O = 0.5 * (self:GetSpellHit()/100)
				if not calculation.extraDamage then
					calculation.extraDamage = 0
				end				
				if not calculation.extraName or not string_find(calculation.extraName, poison ) then
					calculation.extraName = (calculation.extraName and (calculation.extraName .."+") or "").. poison
				end
			elseif baseAction.AutoAttack and deadly[buffO] then
				calculation.extra_DPS = deadly[buffO]
				calculation.extraDamage_DPS = 0.12
				calculation.extraDuration_DPS = 12
				calculation.extraStacks_DPS = 5
				calculation.extraName_DPS = "5x " .. buffO			
			end
		end
		
	end
	self.Calculation["Shiv"] = function( calculation )
		calculation.extraChance_O = 1
		calculation.E_canCrit = false
	end
	
--Talents	
	--Track Humanoids, Track Beasts, Track Giants, Track Dragonkin
	local murder = string_lower(GetSpellInfo(19883) .. GetSpellInfo(1494) .. GetSpellInfo(19882) .. GetSpellInfo(19879))
	self.Calculation["Murder"] = function( calculation, talentValue )
		local target = UnitCreatureType("target")
		if target and string_find(murder, string_lower(target)) then
			calculation.dmgM = calculation.dmgM * ( 1 + talentValue )
		end
	end
	local ohm = GetSpellInfo(198)
	self.Calculation["Mace Specialization"] = function( calculation, value )
		if IsEquippedItemType(ohm) then
			calculation.armorPen = calculation.armorPen + value
		end
	end	
	local ohs = GetSpellInfo(201)
	local ss = GetSpellInfo(13960)
	self.Calculation["Sword Specialization"] = function( calculation, value, baseAction )
		--Requires One-Handed Swords
		local mhType, ohType = self:GetWeaponType()
		if not calculation.extraDamage then
			local mh = (mhType == ohs)
			local oh = (ohType == ohs) and (baseAction.AutoAttack or baseAction.OffhandAttack or baseAction.DualAttack)
			if mh or oh then
				calculation.extraDamage = 0
				calculation.extraWeaponDamage = 1
				calculation.extraWeaponDamageM = true
				calculation.extraWeaponDamageChance = (mh and oh) and (2 * value) or value
				calculation.extraWeaponDamage_dmgM = select(7,UnitDamage("player"))
				calculation.extra_canCrit = true
				calculation.extraName = ss
			end
		end
	end
	self.Calculation["Serrated Blades"] = function( calculation, value )
		calculation.armorMod = calculation.armorMod - value * UnitLevel("player")
	end
	
	--Spell specific
	self.Calculation["Fan of Knives"] = function( calculation )
		if self:GetNormM() == 1.7 then
			calculation.WeaponDamage = calculation.WeaponDamage * 1.5
		end
		--Glyph of Fan of Knives
		if self:HasGlyph(63254) then
			calculation.dmgM = calculation.dmgM * 1.2
		end		
	end
	self.Calculation["Envenom"] = function( calculation, ActiveAuras )
		local cp = calculation.Melee_ComboPoints
		if ActiveAuras["Deadly Poison"] and cp > 0 then
			calculation.Melee_ComboPoints = math_min(ActiveAuras["Deadly Poison"], cp)
		else
			calculation.zero = true
			calculation.Melee_ComboPoints = 0
		end
	end
	self.Calculation["Mutilate"] = function( calculation )
		if TargetIsPoisoned then
			calculation.dmgM = calculation.dmgM * 1.2
		end
	end
	self.Calculation["Killing Spree"] = function( calculation, ActiveAuras )
		if not ActiveAuras["Killing Spree"] then
			calculation.dmgM = calculation.dmgM * 1.2
		end
	end
	self.Calculation["Eviscerate"] = function( calculation )
		--Glyph of Eviscerate
		if self:HasGlyph(56802) then
			calculation.critPerc = calculation.critPerc + 10
		end
	end
	self.Calculation["Garrote"] = function( calculation )
		--Glyph of Garrote
		if self:HasGlyph(56812) then
			calculation.dmgM = calculation.dmgM * 1.2
			calculation.eDuration = calculation.eDuration - 3
		end
	end
	self.Calculation["Ghostly Strike"] = function( calculation )
		--Glyph of Ghostly Strike
		if self:HasGlyph(56814) then
			calculation.dmgM = calculation.dmgM * 1.4
			calculation.cooldown = calculation.cooldown + 10
		end
	end
	self.Calculation["Rupture"] = function( calculation )
		--Glyph of Rupture
		if self:HasGlyph(56801) then
			calculation.eDuration = calculation.eDuration + 4
		end
	end	
	
	--Set bonuses
	self.SetBonuses["T8"] = { 46123, 46124, 46125, 46126, 46127, 45396, 45397, 45398, 45399, 45400 }
	self.SetBonuses["T7"] = { 40495, 40496, 40499, 40500, 40502, 39558, 39560, 39561, 39564, 39565 }
	
	self.SetBonuses["Rupture"] = function( calculation )
		if self:GetSetAmount("T7") >= 2 then
			calculation.dmgM_Add = calculation.dmgM_Add + 0.1
		end
		if self:GetSetAmount("T8") >= 4 then
			calculation.NoCrits = false
		end
	end
	
	--Auras
	local dPoison = { 2818, 2819, 11353, 11354, 25349, 26968, 27187, 57969, 57970 }			
	for _, v in ipairs(dPoison) do
		self.TargetAura[GetSpellInfo(v)] = { ActiveAura = "Deadly Poison", Spells = { [GetSpellInfo(32645)] = true, [GetSpellInfo(1329)] = true }, SelfCast = true }
	end
	
--AURA
--Player
	--Killing Spree
	self.PlayerAura[GetSpellInfo(51690)] = { Value = 0.2, ActiveAura = "Killing Spree" }
	--Remorseless
	self.PlayerAura[GetSpellInfo(14143)] = { ActiveAura = "Remorseless" }
	--Find Weakness
	self.PlayerAura[GetSpellInfo(31234)] = { ActiveAura = "Find Weakness" }
	--Shadowstep
	self.PlayerAura[GetSpellInfo(36554)] = { ActiveAura = "Shadowstep" }
	--Hunger for Blood
	self.PlayerAura[GetSpellInfo(51662)] = { ActiveAura = "Hunger For Blood" }
	--Master of Subtlety
	self.PlayerAura[GetSpellInfo(31221)] = { ActiveAura = "Master of Subtlety" }
--Target
	--Kidney Shot
	self.TargetAura[GetSpellInfo(408)] = { ActiveAura = "Kidney Shot", SelfCast = true }	
	--Turn the tables
	self.TargetAura[GetSpellInfo(51629)] = { Spells = { GetSpellInfo(53), GetSpellInfo(14278), GetSpellInfo(16511), GetSpellInfo(1329), GetSpellInfo(14251), GetSpellInfo(5938), (GetSpellInfo(1752)) }, ModType = "critPerc", Ranks = 3, Value = 2 }	
	
	self.spellInfo = {
		[GetSpellInfo(1752)] = {
			["Name"] = "Sinister Strike",
			[0] = { WeaponDamage = 1 },
			[1] = { 3 },
			[2] = { 6 },
			[3] = { 10 },
			[4] = { 15 },
			[5] = { 22 },
			[6] = { 33 },
			[7] = { 52 },
			[8] = { 68 },
			[9] = { 80 },
			[10] = { 98 },
			[11] = { 150 },
			[12] = { 180 },
		},
		[GetSpellInfo(53)] = {
			["Name"] = "Backstab",
			[0] = { WeaponDamage = 1.5, Weapon = GetSpellInfo(1180) }, --Daggers
			[1] = { 15 },
			[2] = { 30 },
			[3] = { 48 },
			[4] = { 69 },
			[5] = { 90 },
			[6] = { 135 },
			[7] = { 165 },
			[8] = { 210 },
			[9] = { 225 },
			[10] = { 255 },
			[11] = { 382.5 },
			[12] = { 465 },
		},
		[GetSpellInfo(2098)] = {
			["Name"] = "Eviscerate",
			[0] = { ComboPoints = true, APBonus = { 0.03, 0.06, 0.09, 0.12, 0.15 } },
			[1] = { 6, 10, PerCombo = 5 },
			[2] = { 14, 22, PerCombo = 11 },
			[3] = { 25, 39, PerCombo = 19 },
			[4] = { 41, 61, PerCombo = 31 },
			[5] = { 60, 90, PerCombo = 45 },
			[6] = { 93, 137, PerCombo = 71 },
			[7] = { 144, 212, PerCombo = 110 },
			[8] = { 199, 295, PerCombo = 151 },
			[9] = { 224, 332, PerCombo = 170 },
			[10] = { 245, 365, PerCombo = 185 },
			[11] = { 405, 613, PerCombo = 301 },
			[12] = { 497, 751, PerCombo = 370 },
		},
		[GetSpellInfo(8676)] = {
			["Name"] = "Ambush",
			[0] = { WeaponDamage = 2.75, Weapon = GetSpellInfo(1180) }, --Daggers
			[1] = { 77 },
			[2] = { 110 },
			[3] = { 137.5 },
			[4] = { 203.5 },
			[5] = { 253 },
			[6] = { 319 },
			[7] = { 368.5 },
			[8] = { 508.75 },
			[9] = { 770 },
			[10] = { 907.5 },
		},
		[GetSpellInfo(1776)] = {
			["Name"] = "Gouge",
			[0] = { APBonus = 0.21, Cooldown = 10 },
			[1] = { 1 },
		},	
		[GetSpellInfo(14278)] = {
			["Name"] = "Ghostly Strike",
			[0] = { WeaponDamage = 1.25, Cooldown = 20, NoNormalization = true },
			[1] = { 0 },
		},
		[GetSpellInfo(14251)] = {
			["Name"] = "Riposte",
			[0] = { WeaponDamage = 1.5, NoNormalization = true, NoWeapon = true },
			[1] = { 0 },
		},
		[GetSpellInfo(703)] = {
			["Name"] = "Garrote",
			[0] = { NoCrits = true, APBonus = 0.42, eDuration = 18, Ticks = 3, NoWeapon = true, Bleed = true },
			[1] = { 120 },
			[2] = { 162 },
			[3] = { 222 },
			[4] = { 270 },
			[5] = { 342 },
			[6] = { 426 },
			[7] = { 510 },
			[8] = { 612 },
			[9] = { 660 },
			[10] = { 714 },
		},
		[GetSpellInfo(1943)] = {
			["Name"] = "Rupture",
			[0] = { NoCrits = true, ComboPoints = true, APBonus = { 0.06, 0.12, 0.18, 0.24, 0.3 }, ExtraPerCombo = { 0, 0, 1, 3, 6 }, eDuration = 6, Ticks = 2, DurationPerCombo = 2, Bleed = true },
			[1] = { 40, PerCombo = 20, ExtraPerCombo = 4 },
			[2] = { 60, PerCombo = 30, ExtraPerCombo = 6 },
			[3] = { 88, PerCombo = 42, ExtraPerCombo = 8 },
			[4] = { 128, PerCombo = 57, ExtraPerCombo = 10 },
			[5] = { 176, PerCombo = 79, ExtraPerCombo = 14 },
			[6] = { 272, PerCombo = 108, ExtraPerCombo = 16 },
			[7] = { 324, PerCombo = 136, ExtraPerCombo = 22 },
			[8] = { 488, PerCombo = 197, ExtraPerCombo = 30 },
			[9] = { 580, PerCombo = 235, ExtraPerCombo = 36 },
		},
		[GetSpellInfo(16511)] = {
			["Name"] = "Hemorrhage",
			[0] = { WeaponDamage = 1.1 },
			[1] = { 0 },
			[2] = { 0 },
			[3] = { 0 },
			[4] = { 0 },
			[5] = { 0 },
		},
		[GetSpellInfo(5938)] = {
			["Name"] = "Shiv",
			[0] = { WeaponDamage = 1, OffhandAttack = true, NoCrits = true },
			[1] = { 0 },
		},		
		[GetSpellInfo(32645)] = {
			["Name"] = "Envenom",
			--TODO: Verify values when blizzard fixes the tooltip
			[0] = { School = "Nature", ComboPoints = true, APBonus = { 0.07, 0.14, 0.21, 0.28, 0.35 } },
			[1] = { 118, PerCombo = 118 },
			[2] = { 148, PerCombo = 148 },
			[3] = { 176, PerCombo = 176 },
			[4] = { 216, PerCombo = 216 },
		},
		[GetSpellInfo(26679)] = {
			["Name"] = "Deadly Throw",
			[0] = { School = { "Ranged", "Physical" }, Ranged = true, WeaponDamage = 1, ComboPoints = true },
			[1] = { 164, 180, PerCombo = 105 },
			[2] = { 223, 245, PerCombo = 142 },
			[3] = { 350, 386, PerCombo = 224 },
		},
		[GetSpellInfo(1329)] = {
			["Name"] = "Mutilate",
			[0] = { WeaponDamage = 1, DualAttack = true, OffhandBonus = true },
			[1] = { 44 },
			[2] = { 63 },
			[3] = { 88 },
			[4] = { 101 },
			[5] = { 153 },
			[6] = { 181 },
		},
		[GetSpellInfo(51723)] = {
			["Name"] = "Fan of Knives",
			[0] = { WeaponDamage = 1, DualAttack = true, Cooldown = 10 },
			[1] = { 0 },
		},
		[GetSpellInfo(51690)] = {
			["Name"] = "Killing Spree",
			[0] = { WeaponDamage = 1, DualAttack = true, Hits = 5, },
			[1] = { 0 },
		},
	}
	self.talentInfo = {
		--Assassination:
		--Improved Eviscerate (additive)
		[GetSpellInfo(14162)] = {	[1] = { Effect = { 0.07, 0.14, 0.20 } , Spells = "Eviscerate" }, },		
		--Remorseless Attacks
		[GetSpellInfo(14144)] = {	[1] = { Effect = 20, Spells = { "Sinister Strike", "Hemorrhage", "Backstab", "Mutilate", "Ambush", "Ghostly Strike" }, ModType = "Remorseless Attacks" }, },
		--Blood Spatter (additive)
		[GetSpellInfo(51632)] = {	[1] = { Effect = 0.15, Spells = { "Rupture", "Garrote" } }, },		
		--Puncturing Wounds
		[GetSpellInfo(13733)] = {	[1] = { Effect = 10, Spells = "Backstab", ModType = "critPerc" }, 
						[2] = { Effect = 5, Spells = "Mutilate", ModType = "critPerc" }, },
		--Lethality
		[GetSpellInfo(14128)] = {	[1] = { Effect = 0.06, Spells = { "Sinister Strike", "Gouge", "Backstab", "Ghostly Strike", "Mutilate", "Shiv", "Hemorrhage" }, ModType = "critM" }, },						
		--Vile Poisons (additive)
		[GetSpellInfo(16513)] = {	[1] = { Effect = { 0.07, 0.14, 0.20 }, Spells = "Envenom" }, 
						[2] = { Effect = { 0.07, 0.14, 0.20 }, Spells = "All", ModType = "Vile Poisons" }, },		
		--Improved poisons
		[GetSpellInfo(14117)] = {	[1] = { Effect = 1, Spells = "All", ModType = "Improved Poisons" }, },
		--Improved Kidney Shot (?)
		[GetSpellInfo(14174)] = {	[1] = { Effect = 0.03, Spells = "All", ModType = "Improved Kidney Shot" }, },
		--Murder (multiplicative)
		[GetSpellInfo(14158)] = {	[1] = { Effect = 0.01, Spells = "All", ModType = "Murder" }, },
		--Find Weakness (additive)
		[GetSpellInfo(31234)] = {	[1] = { Effect = 0.02, Spells = "All", Specials = true }, },
		--TODO: Make sure hunger for blood is handled through API
		
		--Combat:
		--Dual Wield Specialization
		[GetSpellInfo(13715)] = {	[1] = { Effect = 0.1, Spells = { "Attack", "Mutilate" }, ModType = "offHdmgM", Multiply = true }, NoManual = true, },
		--Precision
		[GetSpellInfo(13705)] = {	[1] = { Effect = 1, Spells = "All", ModType = "hitPerc" }, },
		--Aggression (additive)
		[GetSpellInfo(18427)] = {	[1] = { Effect = 0.03, Spells = { "Sinister Strike", "Eviscerate", "Backstab" } }, },
		--Mace Specialization
		[GetSpellInfo(13709)] = {	[1] = { Effect = 0.03, Spells = "All", ModType = "Mace Specialization" }, },
		--Sword specialization
		[GetSpellInfo(13964)] = {	[1] = { Effect = 0.01, Spells = { "Attack", "Sinister Strike", "Eviscerate", "Fan of Knives", "Envenom", "Shiv", "Ghostly Strike", "Gouge", "Rupture", "Hemorrhage" }, ModType = "Sword Specialization", }, },
		--Blade Twisting (additive)
		[GetSpellInfo(31124)] = { 	[1] = { Effect = 0.05, Spells = { "Sinister Strike", "Backstab" } }, },	
		--Surprise Attacks (additive)
		[GetSpellInfo(32601)] = {	[1] = { Effect = 0.1, Spells = { "Sinister Strike", "Backstab", "Shiv", "Gouge", "Hemorrhage" } }, },
		--Prey on the Weak (additive)
		[GetSpellInfo(51685)] = { 	[1] = { Effect = 0.04, ModType = "Prey on the Weak" }, },
		
		--Subtlety:
		--Opportunity (additive)
		[GetSpellInfo(14057)] = {	[1] = { Effect = 0.04, Spells = { "Backstab", "Mutilate", "Garrote", "Ambush" } }, },
		--Serrated Blades (additive)
		[GetSpellInfo(14171)] = {	[1] = { Effect = 0.1, Spells = "Rupture" },
						[2] = { Effect = { 2.67, 5.34, 8 }, Spells = "All", ModType = "Serrated Blades" }, },
		--Improved Ambush
		[GetSpellInfo(14079)] = {	[1] = { Effect = 25, Spells = "Ambush", ModType = "critPerc" }, },
		--Dirty Deeds (multiplicative)
		[GetSpellInfo(14082)] = { 	[1] = { Effect = 0.1, Spells = "All", Specials = true, ModType = "Dirty Deeds" }, },
		--Master of Subtlety (multiplicative)
		[GetSpellInfo(31221)] = { 	[1] = { Effect = { 0.04, 0.07, 0.1 }, Spells = "All", ModType = "Master of Subtlety"}, },		
		--Sinister Calling (additive)
		[GetSpellInfo(31216)] = {	[1] = { Effect = 0.02, Spells = { "Backstab", "Hemorrhage" }, ModType = "WeaponDamage" }, },
	}
end